Copyright(C) 1994,1995,1996,1997 Terumasa KODAKA , Takeshi KONO


■EGC
対象	V30HL,V33A,80286以上のCPUを搭載した機種
解説  o EGC(Enhanced Graphic Charger)は、PC-9800のグラフィックVRAM描画を高速化
	するための回路で、GRCG(Graphic Charger)の上位互換。CPUとVRAM、または
	GDCとVRAMの間に入って、VRAMに書き込むデータに対して様々な論理演算を
	行う。複数のプレーンを同時にアクセスしたり、データのビット単位の
	シフト等も可能である。
      o EGCの全てのレジスタは、I/O 006AhでEGC拡張モードに設定されていて、
	かつI/O 007Chのbit 7=1のときのみ変更可能である。
      o PC-9801NVはEGCの回路を搭載しているが、通常はマスクされているため使用
	できない。OUT EE8Eh,00hを実行し、0000:054Dh bit 6=1にすれば、
	レジュームOFF時に限りEGCが使用可能になる。
	PC-9801NS/E・NCは、レジュームON時にはEGCが使用できない。
      u CPUがEGC経由で描画するときは、必ず16ビットアクセスしなければならない。
	VRAMが32ビットローカルバス接続されている機種でも、EGCは16ビット単位で
	しか処理できない。
	
	
	
      o EGCの使用するI/Oポート一覧
	-----------+----+---+--------------------------------------------------
	I/Oアドレス|幅  |R/W|内容
	-----------+----+---+--------------------------------------------------
	04A0h      |WORD| W |EGCレジスタ1ライト
	04A2h      |WORD| W |EGCレジスタ2ライト
	04A4h      |WORD| W |EGCレジスタ3ライト
	04A6h      |WORD| W |EGCレジスタ4ライト
	04A8h      |WORD| W |EGCレジスタ5ライト
	04AAh      |WORD| W |EGCレジスタ6ライト
	04ACh      |WORD| W |EGCレジスタ7ライト
	04AEh      |WORD| W |EGCレジスタ8ライト
	-----------+----+---+--------------------------------------------------
関連	0000:054Dh bit 6
	I/O EE8Eh
	I/O 006Ah - 04h,05h
	I/O 006Ah - 06h,07h
	I/O 007Ch bit 7


I/O	04A0h
名前	EGCレジスタ1ライト
チップ	EGC
機能
	[WRITE]
	bit 15〜8: 未使用(常にFFhにする)
	bit 7〜4: P7EN#〜P4EN#■[PC-H98の256色モードのみ]
	bit 3〜0: P3EN#〜P0EN#
		1= プレーンへの書き込み無効
		0= プレーンへの書き込み有効
	[READ]
	設定値読み出し(PC-H98,PC-98GSのみ)
解説  o アクティブプレーンを設定する。書き込みを許可するプレーンに対応する
	ビットを0にする。
      o bit 7〜4は、PC-H98の256色モード時のみ有効。
      u PC-H98,PC-98GSでは、このポートをリードすると設定値が読める。


I/O	04A2h
名前	EGCレジスタ2ライト
チップ	EGC
機能
	[WRITE]
	bit 15: 未使用(常に0)
	bit 14,13: FGC,BGC
		11b= 設定禁止
		10b= フォアグラウンドカラー
		01b= バックグラウンドカラー
		00b= パターンレジスタ
		* ROPのP入力に割り当てるデータを選択する
	bit 12: 未使用(常に0)
	bit 11〜8: リードプレーン
		0111b= VRAM plane #7■[PC-H98 256色ボード装備時のみ]
		0110b= VRAM plane #6■[PC-H98 256色ボード装備時のみ]
		0101b= VRAM plane #5■[PC-H98 256色ボード装備時のみ]
		0100b= VRAM plane #4■[PC-H98 256色ボード装備時のみ]
		0011b= VRAM plane #3
		0010b= VRAM plane #2
		0001b= VRAM plane #1
		0000b= VRAM plane #0
	bit 7〜0: 未使用(常にFFhにする)
	[READ]
	* 設定値読み出し(PC-H98,PC-98GSのみ)
解説  o ROPのP入力に割り当てるデータを指定する。
      o EGCが読み出しを行うプレーンを指定する。
      u PC-H98,PC-98GSでは、このポートをリードすると設定値が読める。
関連	I/O 04A6h,04ACh


I/O	04A4h
名前	EGCレジスタ3ライト
チップ	EGC
機能
	[WRITE]
	bit 15,14: 未使用(常に00bにする)
	bit 13: コンペアリード
		1= しない
		0= する
		* コンペアリードとはVRAMリード時に、各ドット位置に対して全プ
		  レーンのデータとフォアグランドカラーを比較し一致すれば1、
		  一致しなければ0を返す機能
	bit 12,11: ライトソース
		11b= 設定不可
		10b= パターンレジスタの内容をライト
		01b= ラスタオペレーションの演算結果をライト
		00b= CPUデータをライト
	bit 10: リードソース
		1= シフタ入力はCPUライトのデータ
		0= シフタ入力はグラフィックVRAMのデータ
		* EGCのS入力に割り当てるデータを選択する
	bit 9〜8: レジスタロード
		11b= 設定不可
		10b= VRAMライト時にライトされる前のVRAMデータをロード
		01b= VRAMリード時にVRAMデータをパターンレジスタにロード
		00b= パターンレジスタの変更はしない
	bit 7〜0: ROPレジスタ
		Shifter		11110000
		Distnation	11001100
		PatternReg.	10101010
		--------------------------------------------------------
		ROPコード(例)	11110000=VRAM転送		
				00001111=VRAM反転転送		
				11001100=NOP			
				00110011=VRAM反転		
				11111111=VRAM塗りつぶし		
				00000000=VRAM消去		
				10101010=パターン塗りつぶし
				01010101=パターン反転塗りつぶし
	[READ]	なし
解説  o EGCのROP処理を定義する。
関連	I/O 04A6h		


I/O	04A6h
名前	EGCレジスタ4ライト
チップ	EGC
機能
	[WRITE]
	■[FGC=0かつBGC=0のとき]
	bit15〜0: 0
	■[FGC=1またはBGC=1のとき]
	bit15〜8: 0
	bit 7〜4: フォアグランドカラー■(PC-H98 256色ボード装備時)
	bit 3〜0: フォアグランドカラー
	[READ]	なし
解説  o フォアグランドカラーを指定する。
      o ROPのP入力にパターンレジスタを割り当てる場合は、このポートに0000hを
	指定しなくてはならない。
関連	I/O 04A2h bit 14,13


I/O	04A8h
名前	EGCレジスタ5ライト
チップ	EGC
機能
	[WRITE]
	■[FGC=0かつBGC=0のとき]
	bit15〜0: 0
	■[FGC=1またはBGC=1のとき]
	bit15〜0: マスクレジスタ
		* 1にセットされたビットの書き換えが無視される。
	[READ]	なし
解説  o マスクレジスタを設定する。
      o ROPのP入力にパターンレジスタを割り当てる場合は、このポートに0000hを
	指定しなくてはならない。
関連	I/O 04A2h bit 14,13


I/O	04AAh
名前	EGCレジスタ6ライト
チップ	EGC
機能
	[WRITE]
	■[FGC=0かつBGC=0のとき]
	bit15〜0: 0
	■[FGC=1またはBGC=1のとき]
	bit15〜8: 0
	bit 7〜4: バックグランドカラー■(PC-H98 256色ボード装備時)
	bit 3〜0: バックグランドカラー
	[READ]	なし
解説  o バックグランドカラーを指定する。
      o ROPのP入力にパターンレジスタを割り当てる場合は、このポートに0000hを
	指定しなくてはならない。
関連	I/O 04A2h bit 14,13


I/O	04ACh
名前	EGCレジスタ7ライト
チップ	EGC
機能
	[WRITE]
	bit 15〜13: 000b
	bit 12: DIR
		1= ←の方向にビットを数える(ビット降順)
		0= →の方向にビットを数える(ビット昇順)
	bit 11〜8: 0000b
	bit  7〜4: ディスティネーションビットアドレス
	bit  3〜0: ソースビットアドレス
	[READ]	なし
解説  o シフタの制御を行う。
      o シフタでは、入力したデータをビット単位でシフトすることが可能。
関連	I/O 04AEh


I/O	04AEh
名前	EGCレジスタ8ライト
チップ	EGC
機能
	[WRITE]
	bit 15〜12: 0
	bit 11〜0: ビット長(0〜4095)
	[READ]	なし
解説  o シフタの制御を行う。
      o このポートにはシフタで扱うデータのビット長を設定する。通常EGC使用時
	にはVRAMは16bitアクセスを行うので、このポートには000Fhを指定する。
関連	I/O 04ACh